Spot Pod
Autopilot ならこれいれるだけ
code:nodeselector.yaml
spec: # pod
nodeSelector:
cloud.google.com/gke-spot: "true"
terminationGracePeriodSeconds: 25
Node Affinity で使えたら使う指定もできる
? 実際に SpotPod 使ってまっせ!! というのはどこで確認できる?
node に以下のラベルがついてる
cloud.google.com/gke-provisioning=spot
cloud.google.com/gke-spot=true
$ kubectl get nodes -L 'cloud.google.com/gke-provisioning' -L 'cloud.google.com/gke-spot'
でみれる
? プリエンプションされたログや event はどういうの?
? 3ゾーンにそれぞれ n Pod ずつは標準の VM で、後のスケール分は Spot みたいな指定はどうする?
Deployment 分けて一方はオンデマンド、一方は Spot にするのかなあ
Spot Node が終了したときに複数の Pod がまとめて死んでしまわないようにする例
同じ Deployment が別々の node に割り当てられるようにすることでまとめて死ぬのを避ける
Autopilot は Pod の vCPU request が 0.5 以上のときにのみ新しい node を作る(要出典)ので、最低 0.5 はないとうまく動かないとのこと
code:podantiaffinity.yaml
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- {{ .Values.deploymentName }}
topologyKey: kubernetes.io/hostname
{{ .Values.deploymentName }} は helm 要るかな?